Device for industry-specific content streaming

ABSTRACT

A device for industry-specific content streaming includes a network interface, a display, a memory, and at least one processor coupled to the network interface and the memory. The at least one processor is configured to transmit a request for a digital content item to a remote server, wherein the digital content item is classified according to a specific classification code, receive a manifest file associated with the digital content item, wherein the manifest file includes a location for at least one segment file associated with the digital content item, determine using the manifest file a location on the remote server of a segment file, transmit to the remote server a request for the segment file stored on the remote server, receive the segment file in response to the request for the segment file, and present contents of the segment file on the display of the electronic device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.15/908,090, filed Feb. 28, 2018, and entitled DEVICE FORINDUSTRY-SPECIFIC CONTENT STREAMING. U.S. patent application Ser. No.15/908,090 claims the benefit of and/or priority to U.S. ProvisionalPatent Application No. 62/464,997, filed Feb. 28, 2017, and entitledSYSTEM AND METHOD FOR BROADCASTING INDUSTRY SPECIFIC CONTENT USINGSTANDARD INDUSTRIAL CLASSIFICATION CODES. This application also claimsthe benefit of and/or priority to U.S. Provisional Patent ApplicationNo. 62/464,998, filed Feb. 28, 2017, and entitled SYSTEM AND METHOD FORBROADCASTING INDUSTRY-SPECIFIC CONTENT TO PHARMACIES. This applicationalso claims the benefit of and/or priority to U.S. Provisional PatentApplication No. 62/464,999, filed Feb. 28, 2017, and entitled DEVICE FORUSE IN RECEIVING INDUSTRY-SPECIFIC BROADCASTS. The contents of Ser. Nos.15/908,090, 62/464,997, 62/464,998, and 62/464,999 are incorporated byreference herein in their entirety.

TECHNICAL FIELD

The following disclosure relates to a device for industry-specificcontent streaming.

SUMMARY

In one aspect thereof, a device for industry-specific content streamingis provided. The device comprises a network interface, a display, amemory, and at least one processor coupled to the network interface andthe memory. The at least one processor configured to transmit over thenetwork interface a request for a digital content item to a remoteserver, wherein the digital content item is classified according to aspecific classification code, receive from the remote server over thenetwork interface a manifest file associated with the digital contentitem stored on the remote server, wherein the manifest file includes alocation on the remote server for at least one segment file associatedwith the digital content item, determine using the manifest file alocation on the remote server of a segment file, transmit over thenetwork interface to the remote server a request for the segment filestored on the remote server, receive from the remote server over thenetwork interface the segment file in response to the request for thesegment file, and present contents of the segment file on the display ofthe electronic device.

In some embodiments, the specific classification code is a StandardIndustrial Classification code (SIC code).

In some embodiments, the digital content item is one of a plurality ofdigital content items stored on the remote server.

In some embodiments, the plurality of digital content items is providedaccording to time-based programming blocks, wherein each of thetime-based programming blocks is associated with a classification codeand with a particular time of day.

In some embodiments, content from the plurality of digital content itemsis scheduled within the time-based programming blocks, wherein aclassification code associated with the content is matched to theclassification code associated with the time-based programming blocks.

In some embodiments, the content scheduled within at least one of thetime-based programming blocks is restricted from being requested by theelectronic device except during the particular time of day associatedthe at least one of the time-based programming blocks.

In some embodiments, the at least one processor is further configured toreceive, at the particular time of day associated with the at least oneof the time-based programming blocks, a manifest file associated withthe content scheduled within the at least one of the time-basedprogramming blocks, and transmit a request, using the manifest fileassociated with the content scheduled within the at least one of thetime-based programming blocks, for a segment file associated with thecontent scheduled within the at least one of the time-based programmingblocks.

In some embodiments, the electronic device is associated with a specificclassification code.

In some embodiments, the content scheduled within at least one of thetime-based programming blocks is restricted from being requested by theelectronic device unless the classification code associated with theelectronic device matches the classification code of the at least one ofthe time-based programming blocks.

In some embodiments, the electronic device is connected to apoint-of-sale (POS) system.

In some embodiments, the at least one processor is further configured toreceive data from the POS system concerning a product or service sold,determine if the data indicates a trend in the products or servicessold, and transmit the data to the remote server so that the remoteserver updates the content scheduled within the time-based programmingblocks according to the trend.

In some embodiments, updating the content scheduled within thetime-based programming blocks according to the trend includes replacingcertain content within at least one of the time-based programming blockswith content including subject matter pertaining to the trend.

In some embodiments, the electronic device further comprises an infrared(IR) receiver for receiving commands from a peripheral IR transmitter.

In some embodiments, the electronic device is restricted from uses otherthan content streaming.

In some embodiments, the at least one processor is further configured torepeat, until all segment files associated with the manifest file arereceived by the electronic device transmitting a request for anothersegment file stored on the remote server, receiving from the remoteserver over the network interface the another segment file in responseto the request for the another segment file, and presenting contents ofthe another segment file on the display of the electronic device.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding, reference is now made to thefollowing description taken in conjunction with the accompanyingDrawings in which:

FIG. 1 illustrates a diagrammatic representation of one embodiment of anindustry-specific content streaming system;

FIG. 2 illustrates a diagrammatic view of one embodiment of a serverside multimedia storage and end user Standard Industrial Classificationcode (SIC code) organization system;

FIG. 3 illustrates a flowchart of one embodiment of a SIC codeassignment process;

FIG. 4 illustrates a flowchart of one embodiment of a SIC code relatedcontent streaming process;

FIG. 5 illustrates a flowchart of one embodiment of a process forcontent streaming in accordance with a programming block;

FIG. 6 illustrates a flowchart of one embodiment of a process fordynamically creating a programming block;

FIG. 7 illustrates a diagrammatic representation of one embodiment of anadaptable industry-specific content streaming system;

FIG. 8 illustrates an adaptable content streaming process;

FIG. 9A illustrates a front perspective view of one embodiment of areceiving unit;

FIG. 9B illustrates a rear view of one embodiment of a receiving unit;

FIG. 10 illustrates a block diagram of one embodiment of an internalhardware configuration of one embodiment of a receiving unit; and

FIG. 11 illustrates a diagrammatic view of one embodiment of a systemdevice that may be used within the environment described herein.

DETAILED DESCRIPTION

Referring now to FIG. 1, there is illustrated a diagrammaticrepresentation of one embodiment of an industry-specific contentstreaming system 100. The system 100 includes a remote server 102 havinga database 104. The database 104 can be local to the remote server 102or can be accessed remotely by the remote server 102. The remote server102 and the database 104 may be managed by a service provider 106. Theservice provider 106 may connect to the remote server 102 locally, orthe remote server 102 may be situated remotely from the service provider106, with the service provider 106 connecting to the remote server 102over a network 108, such as the Internet, such as if the remote server102 is a cloud-based server on which a service, program, or platform isstored and executed. The system 100 also includes a plurality of enduser locations 110. End user locations may be commercial locations suchas retail stores, business offices, doctor's offices, pharmacies, orother commercial locations. Each of the plurality of end user locations110 also includes a receiving unit 112. The receiving unit 112 may be anelectronic device capable of receiving information from the remoteserver 102 when the receiving unit 112 is connected to the remote server102 over the network 108. For instance, in some embodiments, a receivingunit 112 may be a television configured to receive information from theremote server 102. The receiving unit 112 may also be any othercomputing or mobile device, such as desktop computers, laptops,smartphones, or other devices.

In some embodiments, the information received by the receiving unit 112may be multimedia content, such as video or audio data, images,presentations, or other content. In some embodiments, information sentto the receiving units 112 may be multimedia content that is customizedfor specific types of end user locations 110. For example, if an enduser location 110 is a pharmacy, a Standard Industrial Classificationcode (SIC code) for pharmacies can be associated with the end userlocation 110. SIC codes provide a system for classifying industries by afour-digit code. It is often used by government agencies to classifyindustry areas. The SIC codes can be grouped into progressively broaderindustry classifications: industry group, major group, and division. Thefirst 3 digits of the SIC code indicate the industry group, and thefirst two digits indicate the major group. Each division encompasses arange of SIC codes. A six-digit North American Industry ClassificationSystem (NAICS code) is sometimes used instead of a SIC code. It will beunderstood that the system and methods described herein may also useNAICS codes or other similar codes without departing from the spirit andscope of this disclosure. SIC code ranges and their associated divisionsare shown in Table 1.

TABLE 1 Range of SIC Codes Division 0100-0999 Agriculture, Forestry andFishing 1000-1499 Mining 1500-1799 Construction 1800-1999 not used2000-3999 Manufacturing 4000-4999 Transportation, Communications,Electric, Gas and Sanitary service 5000-5199 Wholesale Trade 5200-5999Retail Trade 6000-6799 Finance, Insurance and Real Estate 7000-8999Services 9100-9729 Public Administration 9900-9999 Nonclassifiable

For example, a SIC code related to pharmacies could be passed to theremote server 102, so that the remote server 102 can serve content thatis specific to the pharmacy industry to a pharmacy. In some embodiments,the end user location 110 may have an ID that is associated with aparticular SIC code at the remote server 102 and/or within the database104. The remote server 102 may have stored thereon a plurality ofcontent and/or programming associated with the SIC code so that contentspecific to the industry may be served to the end users' receivingunits. For instance, if an end user location 110 has a SIC code relatedto the automotive repairs industry, that end user location 110 mayreceive at its receiving unit 112 multimedia content concerningdevelopments in the automotive repair industry, such as new and usefulautomotive parts, new ways automobiles are being designed and built,news related to the automotive industry, tips concerning automotiverepairs billing practices, or other information. If an end user location110 has a SIC code related to pharmacies, that end user location 110 mayreceive at its receiving unit 112 multimedia content concerning new drugdevelopment, proper medication filling practices, drug information andside effects, or other information.

Referring now to FIG. 2, there is illustrated a diagrammatic view of oneembodiment of a server side multimedia storage and end user SIC codeorganization system 200. The system 200 includes the server 102. Theremote server 102 has stored thereon a plurality of multimedia content.The multimedia content may be organized in such a way as to allowstreaming of the content to the receiving units 112. In someembodiments, each item of content may be divided into segment files 202for transfer and streaming. The remote server 102 may also have storedthereon a plurality of manifest files, also known as index files, witheach of the plurality of manifest files 204 being associated with anitem of content. The manifest file contains information, such as a URL,for all the segment files associated with a particular item of content,the information allowing for those segment files to be located on anddownloaded from the remote server 102 or any other location they may bestored. Thus, as shown in FIG. 2, one of the plurality of manifest files204 is labeled “AM,” with manifest file AM being associated with, andincluding within information for, segment files AS1, AS2, and so onthrough ASn, wherein ‘n’ is the number of the last segment file. Forexample, if the manifest file AM is the manifest file for a 28 minutevideo, and the video is divided into segment files that are four secondsin length, n=420 for this item of content because there would be 420four-second segment files for the entire 28 minute video.

All content stored on the remote server 102 may be stored in this way,as shown in FIG. 2. There is shown in FIG. 2 other manifest files andtheir associated segment files, with the manifest file labeled BM beingassociated with segment files BS1, BS2, and through BSn. The remoteserver 102 may have any number of manifests and their associated segmentfiles, as indicated in FIG. 2 with manifest file NM and its associatedsegment files NS1, NS2, and NSn, where N represents the last manifestfile and group of segment files for that manifest file and n is the lastsegment file within that group. It will be understood that the ‘N’ and‘n’ identifiers used in FIG. 2 are not meant to necessarily relate toeach other or designate the same number. For instance, even though thereis listed both an ASn and a BSn segment file, n for ASn may equal 200while the n for BSn may equal 10. Similarly, ‘N’ and ‘n’ do notnecessarily represent the same number, as there may be 200 manifestfiles stored overall on the remote server 102, but 1000 segment filesfor a particular item of content.

A manifest file may contain certain information including the locationof segment files for a particular item of content, as shown in theexample manifest file text below:

#EXTM3U #EXT-X-MEDIA- SEQUENCE:0 #EXT-X-TARGETDURATION:10 #EXTINF:10,HTTP://MEDIA.HOST.COM/5912-01_SEGMENT1.WEBM #EXTINF:10,HTTP://MEDIA.HOST.COM/5912-01_SEGMENT2.WEBM . . . #EXTINF:10,HTTP://MEDIA.HOST.COM/5912-01_SEGMENTN.WEBM #EXT-X-ENDLIST

The remote server 102 may also have stored thereon or associatedtherewith, such as within the database 104, information pertaining tothe end user locations 110, their associated SIC codes, and programminginformation for those SIC codes. There is shown in FIG. 2 a USERS table206. The table 206 includes a plurality of user names or IDs 208 havingassociated therewith a SIC code 210. There is shown in FIG. 2 a USER1having a SIC code of 5912 (drug stores and proprietary stores), a USER2having a SIC code of 753 (automotive repair shops), and a USERn having aSIC code of 6531 (real estate agents and managers). It will beunderstood that any number of users, stored via name, ID, or othermeans, having any SIC code may be stored.

The remote server 102 may also have stored thereon or associatedtherewith, such as within the database 104, a content schedule orprogramming schedule based on SIC code, shown in FIG. 2 as a SIC codecontent schedule table 212. The table 212 includes a SIC CODE column 214listing within the column 214 various SIC codes. Programming may becustomized for the particular SIC code and broken into programmingblocks based on time of day. This may be done so that businesses withvariable hours will receive content at the appropriate times, or ifcertain types of businesses have lower customer volume at a particulartime of day, allowing for personnel working for the business to be morelikely to be able to view the content at particular times of the day.For instance, if a pharmacy has downtime in the evening, continuingeducation videos may air so that the personnel can pay more attentionand learn from the video. During peak hours when personnel are thebusiest, content such as news that may not require as much attentionfrom the personnel may air. Programming blocks may be divided by periodof the day in this manner.

For example, in some embodiments, and as illustrated in FIG. 2, theremay be a programming block from 7:00-12:00 during the day (column 216 oftable 212), a programming block from 12:00-18:00 (column 218 of table212), a programming block from 18:00-23:00 (column 220 of table 212),and a programming block from 23:00-7:00 (column 222 of table 212). Itwill be understood that while FIG. 2 shows the same programming blocksfor the shown SIC codes, different programming blocks may be assigned toeach particular SIC code. Table 212 shows that SIC code 5912 hasprogramming specific to the SIC code (drug stores and proprietarystores), including pharmaceutical news airing during the 7:00-12:00programming block, drug information and education content airing duringthe 12:00-18:00 programming block, the latest drug developments andeducation content airing during the 18:00-23:00 programming block, andradio content airing during the 23:00-7:00 programming block. Radiocontent may be filler content that airs during hours that the type ofbusiness is usually closed, and may include music, talk shows related tothe SIC code, or other content.

Different programs, or shows, may be within a programming block, withthe programs airing during the programming block being related to thetheme of the programming block. A 5912 SIC code content table 224 isshown, which includes information on the types of content that mayappear and is related to SIC code 5912 (drug stores and proprietarystores). The table 224 includes a program column 226 including the namesof various programs or shows. The table 224 also includes a content IDunder a content ID column 228 used for easily identifying a specificprogram. The table 224 also includes a content length column 230 whichincludes the length of a given program, in hours. It will be understoodthat content length may be represented in units other than hours, suchas minutes or seconds. A content tags column 232 lists tags associatedwith a particular program. The table 224 may also include a manifestfile path column 234, which includes the URL, file path, or otherlocation for the manifest file.

For example, in the example shown in FIG. 2, the program column 226includes a program titled “Dr. Smith on New Diabetes Medications.” Thisprogram has a content ID of 5912-01 and a length of 0.5 (30 minutes).This program is tagged with the tags “pharma; diabetes; trends;education.” The manifest file path is listed as“http://host.com/5912-01_manifest.m3u8.” This program may air duringblocks having a theme associated with the tags, such as during the18:00-23:00 programming block shown in table 212, which the theme is onthe latest drug developments and education.

Another example is shown in table 224 of a program titled “Daily PharmaNews.” This program has a content ID of 5912-02 and a length of 1.5 (oneand a half hours). This program is tagged with the tags “pharma; news.”The manifest file path is listed as“http://host.com/5912-02_manifest.m3u8.” This program may air duringblocks having a theme associated with the tags, such as during the7:00-12:00 programming block shown in table 212, the theme for which ispharmaceutical news.

Yet another example is shown in table 224 of a program titled “ProperMedication Filling Practices.” This program has a content ID of 5912-n(n representing the number for the last 5912-related content currentlyin the system) and a length of 2.0 (two hours). This program is taggedwith the tags “pharma; education; training.” The manifest file path islisted as “http://host.com/5912-n_manifest.m3u8.” This allows for themanifest file to be retrieved when the particular program is to beplayed or streamed to a receiving unit 112, with the manifest fileproviding links to the segment files. This program may air during blockshaving a theme associated with the tags, such as during the 12:00-18:00programming block shown in table 212, the theme for which is druginformation and education. Programs listed in table 224, including thosenot shown, may be scheduled within a programming block until thatprogramming block is full. This allows for a full day's programming tobe scheduled by filling each programming block with content. The serviceprovider 106 may decide how to arrange content for the programmingblocks. In some embodiments, an on-demand feature may be implementedthat allows for the end users to select particular content from withinthe content listed in table 224 to watch as they please.

Other content similar to the examples shown in table 224 may be includedfor other subjects and SIC codes. For example, as shown in table 212,there is included two other SIC codes, 753 (automotive repair shops) and6531 (real estate agents and managers). Table 212 shows that SIC code753 has programming blocks specific to the SIC code, with automotiverepair news airing during the 7:00-12:00 programming block, newautomotive repair techniques and education content airing during the12:00-18:00 programming block, automotive repair strategies and pricingcontent airing during the 18:00-23:00 programming block, and radiocontent airing during the 23:00-7:00 programming block. Radio contentmay be filler content that airs during hours that the type of businessis usually closed, and may include music, talk shows related to the SICcode, or other content. Programs related to SIC code 753 may be storedand organized in a similar manner as that shown in table 224.

Table 212 also shows that SIC code 6531 has programming blocks specificto the SIC code, with real estate news airing during the 7:00-12:00programming block, real estate trends and education content airingduring the 12:00-18:00 programming block, new real estate laws andeducation content airing during the 18:00-23:00 programming block, andradio content airing during the 23:00-7:00 programming block. Programsrelated to SIC code 6531 may be stored and organized in a similar manneras that shown in table 224.

It will be understood that the tables shown in FIG. 2 are visuallyrepresentative of the type of data that may be stored on remote server102 and/or within the database 104 and the relationship of the data toother data, but may not be necessarily organized in table format.Rather, it will be understood that the data may be organized in arelational database or via other means so that SIC codes may be linkedto particular content and to particular end users. Additionally, it willbe understood that the SIC codes and their associated programs andprogramming blocks shown in FIG. 2 are used for example purposes, andother SIC codes and associated content may be used.

Referring now to FIG. 3, there is illustrated a flowchart of oneembodiment of a SIC code assignment process 300. The process 300 beginsat step 302 where an industry-specific establishment, such as an enduser location 110, is provided with, or offers its own,industry-specific SIC code. In some embodiments, the service provider106 may provide a SIC code to an end user if the end user is unsure oftheir SIC code, or if the service provider 106 has a policy of providingSIC codes to establishments. In other embodiments, the end user mayprovide a SIC code if they wish, or if they feel that a SIC codeprovided by the service provider is not accurate. The process then flowsto step 304, where the industry-specific SIC code is stored by theremote server 102 in association with the industry-specificestablishment. At step 306, a device at the industry-specificestablishment, such as the receiving unit 112, requests content from theremote server 102, the request including the industry-specific SIC code.

At decision block 308, it is determined whether there is currentlycontent on the remote server 102 that is related to or available underthe requested SIC code. If not, the process flows to step 310 where arelated industry-specific SIC code is either provided to or offered bythe industry-specific establishment. The process then flows back to step306 to again request content using the SIC code. This enables theindustry-specific establishment to receive content with subject matterclosest to its industry that is available from the service provider 106.If at decision block 308 it is determined that content is availableunder the requested SIC code, the process flows to step 312 where theserver streams content customized for the industry-specific SIC code tothe industry-specific establishment. The process 300 then ends at step314.

Referring now to FIG. 4, there is illustrated a flowchart of oneembodiment of a SIC code related content streaming process 400. Theprocess 400 begins at step 402 where the server receives new content,such as a video, for storage and streaming by the server. At step 404,the new content is divided into a plurality of segment files each havinga particular length and each being saved to a location on the server. Inother embodiments, the plurality of segment files may be storedelsewhere, such as another remote server or other storage location. Theprocess then flows to step 406 where a manifest file is created, themanifest file including the locations on the server or elsewhere foreach of the plurality of segment files and the manifest file beingstored in association with one or more SIC codes, for example such asthat shown with respect to FIG. 2.

The process 400 then flows to step 408, where the server receives from adevice at an industry-specific establishment, such as a receiving unit112, a request for content, the request including an industry-specificSIC code. At step 410, the server determines that the new content orother already stored and segmented content is to be streamed to thedevice and sends the manifest file associated with the content to thedevice. At step 412, the server receives a request for the first/nextsegment file listed in the manifest file. At step 414, the server sendsthe segment filed requested by the device in step 412 to the device. Theprocess then flows to decision block 416 where it is determined whetherthe final segment file listed in the manifest file has been sent to thedevice. If so, the process ends at step 418. If not, the process flowsback to step 412 where the next segment file in the manifest file isrequested and then flows to step 414 where the next segment file is sentto the device. This is repeated until all segment files listed in themanifest file are sent to the device. As each segment file is receivedby the device, the device plays back the segment file.

Referring now to FIG. 5, there is illustrated a flowchart of oneembodiment of a process 500 for content streaming in accordance with aprogramming block. The process 500 begins at step 502 where a pluralityof content for streaming is stored on a server. This stored plurality ofcontent may include various items of content and each item may alreadybe segmented into segment files and have an associated manifest file. Atstep 504, time-based programming blocks are created in association witha particular SIC code, each programming block taking up a set period oftime during a day and having a particular theme, such as the examplesshown in FIG. 2. At step 506, a content selection selected from theplurality of content is scheduled to air at a particular time within aparticular programming block. The content selected may be in accordancewith the type of content that is intended to air during a programmingblock. Additionally, the length of content may be considered whenscheduling content to air during the programming block. For example, ifa programming block is three hours long, six 30-minute shows may bescheduled. If the shows do not completely fill a programming block, suchas if two minutes are not filled, ads, a short audio clip, or othercontent may be scheduled for the remaining time. At decision block 508,it is determined whether all the programming blocks have been now filledwith scheduled content. If not, the process loops back to step 506 untilall programming blocks for a particular day have been filled withcontent. Once at decision block 508 it is determined that theprogramming blocks have been filled, the process flows to step 510 wherethe next content selection scheduled within the current programmingblock is streamed to connected devices.

At decision block 512 it is determined whether the end of theprogramming block has been reached, if not, the process flows back tostep 510 to stream the next content selection within the currentprogramming block. If so, the process flows to step 514 where the firstcontent selection scheduled within the next programming block isstreamed to connected devices. At decision block 516, it is determinedwhether the end of the final programming block for the day has beenreached. If not, the process flows back to step 510 to stream the nextcontent selection within the current programming block. If so, theprocess flows back to step 504 where new time-based programming blocksare created in association with a particular SIC code. In otherembodiments, if it is determined at decision block 516 that the end ofthe final programming block for the day has been reached, the processmay flow back to step 506 instead of step 504, in the event that thetimes and themes of the programming blocks are not to be changed. Theprocess may continue looping back to step 504 or 506 after decisionblock 516 indefinitely, with new content being scheduled for streamingevery day.

Referring now to FIG. 6, there is illustrated a flowchart of oneembodiment of a process 600 for dynamically creating a programmingblock. The process 600 begins at step 602, where time-based programmingblocks are created in association with a particular SIC code, eachprogramming block taking up a period of time during a day and having aparticular theme. At step 604, content stored on a server to be streamedis searched by tags associated with the content for content having tagsthat comport with the particular theme of the programming block. Forinstance, if the theme of the programming block is pharmaceuticaladvances, tags such as “pharma,” “new trends,” “education,” or othertags may be searched. At step 606, a content selection having one ormore matching tags and that has a last playback timestamp that isearliest in time compared to other content having matching tags isselected. The last playback timestamp is a timestamp saved inassociation with a particular item of content indicating when thecontent was last scheduled for broadcasting or streaming. This timestampis compared to the timestamps of other items of content in order toprioritize content that has not aired for a longer period of time thanother content. For instance, an item of content that aired a week priorwould have priority for scheduling over an item of content that airedone day prior.

The process flows to step 608 where the selected content selection isscheduled to air at a particular time within the programming block. Atdecision block 610, it is determined whether all programming blocks havebeen filled with scheduled content. If not, the process flows back tostep 604 to perform another search for content. If so, the process flowsto step 612 where the next content selection scheduled within thecurrent programming block (according to the current time of day) isstreamed to connected devices. At step 614, the content selectionstreamed at step 612 is marked with a last playback timestamp. Atdecision block 616, it is determined whether the end of the finalprogramming block has been reached. If not, the process flows back tostep 612 to stream the next content selection scheduled within thecurrent programming block. If at decision block 616 the end of the finalprogramming block has been reached, the process flows back to step 604where new content is searched to refill the programming blocks with newcontent. In other embodiments, the process may flow from decision block616 back to step 602 if new programming blocks are to be created havingparticular air times or themes.

Referring now to FIG. 7, there is illustrated a diagrammaticrepresentation of one embodiment of an adaptable industry-specificcontent streaming system 700. The system 700 illustrates the remoteserver 102 having a database 104 connected to a service provider 106over a network 108. The remote server 102 is also shown connected overthe network 108 to the plurality of receiving units 112 at the pluralityof end user locations 110. Additionally, the plurality of receivingunits 112 are connected to a point-of-sale (POS) system 702 at each ofthe plurality of end user locations 110. The POS system 702 may be alocal system maintained at the end user location 110, such as a registerconnected to a central storage server, to track customer data, sales ofproducts, and other information that the end user locations 110 wish totrack. The POS system 702 may also be a distributed system where anetwork of end user locations (such as a chain of pharmacies) sharesdata concerning the end user locations, customers, products, and otherdata.

The receiving unit 112 is connected to the POS system 702 in such a wayas to allow the receiving unit 112 to access information tracked andstored by the POS system 702. This allows for content that is streamedto the receiving unit 112 to be further customized according to eachindividual end user location 110. For example, if a POS system 702 for apharmacy or drug store tracks and/or stores the National Drug Codes (NDCcodes) for pharmaceutical products sold at the end user location 110,the receiving unit 112 for that end user location 110 connected to thePOS system 702 may transmit the NDC codes and other informationconcerning product sales to the remote server 102. The remote server 102may then alter the content being sent to the receiving unit 112 for thepharmacy.

Referring now to FIG. 8, there is illustrated an adaptable contentstreaming process 800. The process begins at step 802 where a customerat an industry-specific establishment purchases a product or servicefrom the industry-specific establishment. At step 804, a receiving unitat the industry-specific establishment collects information from theindustry-specific establishment's POS system, including data on theproduct or service purchased by the customer. This data may be the costof products or services sold, time of sale, codes associated with theproduct or service, or other information. For example, if theindustry-specific establishment is a pharmacy, the POS system may trackor store the NDC codes of medications purchased at the pharmacy. If, forexample, a customer purchases a prescription for a beta-blocker, the NDCcode for the beta-blocker may be collected by the receiving unit. Theprocess then flows to step 806, where the receiving unit sends theproduct or service information to the remote server. At step 808, theserver stores the product or service information, and any otherinformation collected, in association with the industry-specificestablishment.

The process then flows to decision block 810, where it is determinedwhether there is a trend in product or service information. Such a trendmay be according to the types of products being purchased, the price ofproducts sold, or other criteria. For example, if a pharmacy is sellinga high level (such as 30% of all medications sold at the pharmacy) ofbeta-blockers, this may indicate that there may be a significant numberof customers purchasing medication to treat heart disease from thisparticular pharmacy. If it is determined that such a trend exists, theprocess flows to step 812. At step 812, the content that is scheduled tobe streamed to the receiving unit at the industry-specific establishmentis updated in accordance with the detected trend. For example, in thebeta-blockers example, the content to be streamed may be updated toinclude more programming concerning known heart disease medications, newbeta-blocker medications, advances in heart disease medications, andheart disease risks and treatment in general. In this way, the contentbeing streamed to the industry-specific establishment may be furthercustomized beyond the SIC code to also include content concerning theproducts and services most often dealt with at the particularindustry-specific establishment. At step 814, the updated content isstreamed to the receiving unit at the industry-specific establishment.The process then flows back to step 802 to track another purchase at theindustry-specific establishment, in order to repeat the steps of process800 so that trends may continue to be detected and streaming contentupdated as new trends are detected. If at decision block 810 no trend isdetected, the process will also flow back to step 802.

Referring now to FIG. 9A, there is illustrated a front perspective viewof one embodiment of a receiving unit 900. The receiving unit 900 may bea display device much like a television or PC monitor. The receivingunit 900 includes a first rectangular housing 902, wherein componentsmay be stored and a screen 904 installed within. The screen 904 may be aliquid crystal display (LCD) screen, an organic light emitting diodescreen (OLED), or other screen types. The receiving unit 900 alsoincludes a second housing 906 wherein additional components may bestored, may be used to allow for room for components, may allow forspace for screws or other hardware to be inserted for mounting thereceiving unit 900, and/or may allow for heat dissipation. The receivingunit 900 further includes one or more speakers 908 situated on a frontsurface of the first housing 902 and beneath the screen 904. In otherembodiments, the one or more speakers 908 may be situated at otherpoints on the receiving unit 900, such as above the screen 904, on theback of the receiving unit 900, such as on the second housing 906, or ona bottom, top, or right and left sides of the housing 902.

The embodiment of the receiving unit 900 shown in FIG. 9 also includeson the front surface of the housing 902 a power button 910 for turningthe receiving unit 900 on and off. Although not shown, other buttons maybe included in addition to the power button 910, such as volume +/−buttons, or in some embodiments no buttons may be included, requiring aremote control device to interact with the receiving unit 900. Thereceiving unit 900 may also include on the housing 902 an IR transmitterand receiver 912. The IR transmitter and receiver 912 may allow for thereceiving unit 900 to be interacted with using a remote control device(not shown) or other IR devices. Additionally or alternatively, theremote control device may transmit wireless signals via RF, light,and/or a means other than IR. The receiving unit 900 may be connected toa removable stand 914 in order to keep the receiving unit 900 in placeand upright.

Referring now to FIG. 9B, there is illustrated a rear view of oneembodiment of the receiving unit 900. The receiving unit 900 furtherincludes a power port 916 for inserting a power cable and an Ethernetport 918 for inserting an Ethernet cable or other cable designed forconnecting to a modem, router, or other device for providing a networkor Internet connection to the receiving unit 900. The receiving unit 900may also have an internal wireless network communications component(s)(not shown) for allowing the receiving unit 900 to connect to a wirelessnetwork configuration.

While in some embodiments the receiving unit 900 may include other portsfor making additional connections to other devices, such as video oraudio I/O ports, in some embodiments the receiving unit 900 only offersthe two connections shown in FIG. 9B: the power port 916 and theEthernet port 918. This is because, in these embodiments, the receivingunit 900 may be offered or sold as part of the streaming content serviceprovided by the service provider 106, with the receiving unit 900intended to be used only in connection with the streaming service, andnot for other uses, such as watching DVDs or standard televisionprogramming. Thus, in these embodiments, the receiving unit 900 wouldnot include a TV tuner and would not include access to otherapplications such as Netflix, Amazon Instant Video, YouTube, or othervideo service applications because the receiving unit 900 is onlyintended to be used in connection with the streaming service offered bythe service provider 106.

The receiving unit 900 can internally include a streaming device orcomponents. This internal streaming device would be proprietary to theservice provider 106, only allowing for the receiving unit 900 toconnect to the service provider's remote server 102 for streamingcontent provided by the service provider 106. In some embodiments, thereceiving unit 900 may also include a plurality of threaded holes 920 onthe back of the second housing 906, or another means of connectingsomething to the receiving unit 900, in order for the receiving unit 900to be mounted to a wall or other surface. The removable stand 914 may beremoved when the receiving unit is in a mounted configuration.

Referring now to FIG. 10, and still to FIGS. 9A and 9B, there isillustrated a block diagram of one embodiment of an internal hardwareconfiguration 1000 of the receiving unit 900. The configuration 1000includes a screen 1002 (such as the screen 904 in FIG. 9A), connected toone or more display controllers 1004 for controlling the operation ofthe screen 1002. The display controller 1004 may control the operationof the screen 1002 and other inputs, such as infrared and/or radio inputsignals (e.g., door/gate controllers, alarm system components, etc.). Inother embodiments, the functions of the display controller 1004 may beincorporated into other components, such as a processor 1006. Theprocessor 1006 may comprise a programmable processor or controller forexecuting application programming or instructions. The processor 1006may have multiple cores, and/or multiple virtual processors. Theprocessor 1006 serves to run programming code, or other instructionsimplementing the functions of the receiving unit 900, such as instreaming content from the remote server 102.

The configuration 1000 may further include a memory 1008 and datastorage 1010. The memory 1008 may be used in connection with theexecution of application programming or instructions by the processor1006 and an applications module 1012, and for temporary or long termstorage of program instructions, manifest files and segment files duringmultimedia content playback, and/or other data such as SIC codes. Forexample, the memory 1008 may comprise RAM, DRAM, SDRAM, or other solidstate type memory. The data storage 1010 may also be provided, which maybe a similar memory types such as solid state memory, or may also be ahard disk drive or other random access memory. The data storage 1010 mayalso store program instructions, manifest files and segment files duringmultimedia content playback, and/or other data such as SIC codes. Theapplications module 1012 may be configured to include all components andprogramming for receiving streaming content from the remote server 102,as well as communicating with the remote server 102 for authentication,on-demand content requests, providing the SIC code associated with thereceiving unit 900 to the remote server 102, and other purposes.

The applications module 1012 may also include encoding/decoding and/orcompressions/decompression capabilities for receiving and managingdigital content received. The encoding/decoding andcompression/decompression capabilities enable decompression and/ordecoding of digital or analog information received over a networkinterface 1014, a wireless communications module 1016, or other means.The digital information may be sent to the screen 1002 and/or the one ormore speakers 908 over integrated audio I/O 1018. The network interface1014 may include the Ethernet port 918. The wireless communicationsmodule 1016 may be similar to a wireless network card having an antennafor receiving and transmitting over a wireless signal. Anyencoding/decoding and compression/decompression may be performable onthe basis of various formats, such as video, audio, and other data. Theapplications module may also allow for encryption to ensure theconfidentiality of all data received by or transmitted from thereceiving unit 900. In other embodiments, the encoding/decoding andcompression/decompression capabilities may be performed by a separateencoding/decoding and compression/decompression module separate from theapplications module 1012. Similarly, encryption may be performed by aseparate module as well.

The configuration 1000 may also include hardware buttons 1020 for use inconnection with certain control parameters, such as power and volumecontrols. An IR/RF module 1022 may be included for controlling the IRtransmitter and receiver 912 so that the receiving unit 900 can beinteracted with using a remote control device (not shown) or other IRdevices. Additionally or alternatively, the IR/RF module 1022 mayfacilitate receiving or transmitting wireless signals via RF, light,and/or a means other than IR. Additionally, power can be supplied to thereceiving unit 900 and its components from a power source and/or powercontrol module 1024. The power control module 1024 can, for example,include a battery, an AC-to-DC converter, power control logic, and/orports (such as power port 916) for connecting the receiving unit 900 toan external source of power. Communications between components of thereceiving unit 900 may be provided by a bus 1026. The bus 1026 maycomprise one or more physical buses for control, addressing, and/or datatransmission. The bus 1026 may be parallel serial, a hybrid thereof, orother technology.

Referring now to FIG. 11, one embodiment of a system device 1100 isillustrated. The system device 1100 is one possible example of a deviceused by an end user, such as a another embodiment of the receiving unit112 or 900, a device used by the service provider 106, the POS system702, components within the receiving unit 112 or 900, such as theapplications module 1012, or one possible example of the remote server102. Embodiments include cellular telephones (including smart phones),televisions or monitors, personal digital assistants (PDAs), netbooks,tablets, laptops, desktops, workstations, telepresence consoles, and anyother computing device that can communicate with another computingdevice using a wireless and/or wireline communication link. Suchcommunications may be direct (e.g., via a peer-to-peer network, an adhoc network, or using a direct connection), indirect, such as through aserver or other proxy (e.g., in a client-server model), or may use acombination of direct and indirect communications. It is understood thatthe device may be implemented in many different ways and by manydifferent types of systems, and may be customized as needed to operatewithin a particular environment.

The system 1100 may include a controller (e.g., a central processingunit (“CPU”)) 1102, a memory unit 1104, an input/output (“I/O”) device1106, and a network interface 1108. The components 1102, 1104, 1106, and1108 are interconnected by a transport system (e.g., a bus) 1110. Apower supply (PS) 1112 may provide power to components of the computersystem 1100, such as the CPU 1102 and memory unit 1104, via a powersystem 1114 (which is illustrated with the transport system 1110 but maybe different). It is understood that the system 1100 may be differentlyconfigured and that each of the listed components may actually representseveral different components. For example, the CPU 1102 may actuallyrepresent a multi-processor or a distributed processing system; thememory unit 1104 may include different levels of cache memory, mainmemory, hard disks, and remote storage locations; the I/O device 1106may include monitors, keyboards, and the like; and the network interface1108 may include one or more network cards providing one or more wiredand/or wireless connections to a network 1116. Therefore, a wide rangeof flexibility is anticipated in the configuration of the computersystem 1100.

The system 1100 may use any operating system (or multiple operatingsystems), including various versions of operating systems provided byMicrosoft (such as WINDOWS), Apple (such as Mac OS X), UNIX, and LINUX,and may include operating systems specifically developed for handhelddevices, personal computers, servers, and embedded devices depending onthe use of the system 1100. The operating system, as well as otherinstructions, may be stored in the memory unit 1104 and executed by theprocessor 1102. For example, the memory unit 1104 may includeinstructions for performing some or all of the methods described herein.

Although the embodiment has been described in detail, it should beunderstood that various changes, substitutions and alterations can bemade therein without departing from the spirit and scope of thisdisclosure as defined by the appended claims.

What is claimed is:
 1. A method of an electronic device for industry-specific content streaming, comprising: transmitting a request for a digital content item to a remote server, wherein the request includes a specific classification code and the digital content item is classified according to the specific classification code; receiving, from the remote server, a manifest file associated with the digital content item stored on the remote server, wherein the manifest file includes a location on the remote server for at least one segment file associated with the digital content item; determining, using the manifest file, a location on the remote server of a segment file; transmitting, to the remote server, a request for the segment file stored on the remote server; receiving, from the remote server, the segment file in response to the request for the segment file; and presenting contents of the segment file on a display of the electronic device, wherein the digital content item is one of a plurality of digital content items stored on the remote server, wherein each of the plurality of digital content items is provided according to at least one content schedule, and wherein the at least one content schedule is associated with a classification code defining a target industry for the at least one content schedule.
 2. The method of claim 1, wherein the specific classification code is a Standard Industrial Classification code (SIC code).
 3. The method of claim 1, wherein the at least one content schedule includes time-based programming blocks, wherein each of the time-based programming blocks is associated with a particular time of day.
 4. The method of claim 3, wherein content from the plurality of digital content items is scheduled within the time-based programming blocks, wherein a classification code associated with the content is matched to the classification code associated with the time-based programming blocks.
 5. The method of claim 4, wherein the content from the plurality of digital content items scheduled within at least one of the time-based programming blocks is restricted from being requested by the electronic device except during the particular time of day associated the at least one of the time-based programming blocks.
 6. The method of claim 5, further comprising: receiving, at the particular time of day associated with the at least one of the time-based programming blocks, a manifest file associated with the content from the plurality of digital content items scheduled within the at least one of the time-based programming blocks; and transmitting a request, using the manifest file associated with the content from the plurality of digital content items scheduled within the at least one of the time-based programming blocks, for a segment file associated with the content from the plurality of digital content items scheduled within the at least one of the time-based programming blocks.
 7. The method of claim 4, wherein the electronic device is associated with a specific classification code.
 8. The method of claim 7, wherein the content from the plurality of digital content items scheduled within at least one of the time-based programming blocks is restricted from being requested by the electronic device unless the classification code associated with the electronic device matches the classification code of the at least one of the time-based programming blocks.
 9. The method of claim 4, wherein the electronic device is connected to a point-of-sale (POS) system.
 10. The method of claim 9, further comprising: receiving data from the POS system concerning a product or service sold; determining if the data indicates a trend in the products or services sold; and transmitting the data to the remote server so that the remote server updates the content from the plurality of digital content items scheduled within the time-based programming blocks according to the trend.
 11. The method of claim 10, wherein updating the content from the plurality of digital content items scheduled within the time-based programming blocks according to the trend includes replacing certain content within at least one of the time-based programming blocks with content including subject matter pertaining to the trend.
 12. The method of claim 1, further comprising receiving commands at an infrared (IR) receiver from a peripheral IR transmitter.
 13. The method of claim 1, further comprising restricting the electronic device from uses other than content streaming.
 14. The method of claim 1, further comprising: repeating, until all segment files associated with the manifest file are received by the electronic device: transmitting a request for another segment file stored on the remote server; receiving from the remote server the another segment file in response to the request for the another segment file; and presenting contents of the another segment file on the display of the electronic device. 